package com.stef.saas.common.base.enums;

import java.util.stream.Stream;

/**
 * 错误码枚举
 */
public enum ErrorCodeEnum {
    /**
     * 系统公共code
     */
    COMMON_SUCCESS_0(0, "ok"),

    /**
     * UMS用户服务 错误码
     * 从1_0000开始
     */
    UMS10000(10000,"UMS服务异常"),
    UMS10001(10001,"用户不存在"),
    UMS10002(10002,"账号被禁用,请联系管理员."),
    UMS10003(10003,"服务期已过,请联系客服人员续期."),

    /**
     * CRM服务 错误码
     * 从2_0000开始
     */
    CRM20000(20000,"CRM服务异常"),
    CRM20001(20001,"客户不存在"),


    /**
     * OA服务 错误码
     * 从3_0000开始
     */
    OA30000(30000,"OA服务异常"),
    OA30001(30001,"审批单不存在");


    private int code;
    private String msg;

    public String msg() {
        return msg;
    }

    public int code() {
        return code;
    }

    ErrorCodeEnum(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public static ErrorCodeEnum getEnum(int code) {
        return Stream.of(ErrorCodeEnum.values())
                .filter(c -> c.code == code)
                .findAny()
                .orElse(null);
    }
}
